ในภาษาซีพลัส การสื่อสารคือ การไหลไม่ใช่เหตุการณ์เก็บข้อมูลแบบคงที่ ไลบรารี iostream ใช้โครงสร้างลำดับชั้นเชิงพหุรูป (polymorphic hierarchy) โดยคลาสเฉพาะอย่างเช่น โครงสร้างลำดับชั้นเชิงพหุรูป ที่มีคลาสเฉพาะ เช่น ifstream (ไฟล์) และ istringstream (หน่วยความจำ) สืบทอดจาก istream. สิ่งนี้ทำให้เกิด การสืบทอดของสายการสื่อสาร: ฟังก์ชันที่ออกแบบมาเพื่อใช้งานกับสตรีมระดับฐานสามารถประมวลผลข้อมูลจากแหล่งใดก็ได้โดยไม่ต้องเปลี่ยนแปลง
ข้อจำกัดด้านการคัดลอก
สตรีมแสดงถึงการเชื่อมต่อแบบเฉพาะและมีสถานะกับฮาร์ดแวร์ เพื่อป้องกันไม่ให้หลายวัตถุแข่งกันในการเข้าถึงตัวชี้ไฟล์หรือบัฟเฟอร์คอนโซล ออบเจ็กต์การนำเข้า-ส่งออก (IO) ไม่สามารถคัดลอกหรือกำหนดค่าใหม่ได้. การพยายามใช้โค้ดเช่น ofstream out1, out2; out1 = out2; จะทำให้เกิดข้อผิดพลาดจากระบบคอมไพเลอร์ ดังนั้น ออบเจ็กต์การนำเข้า-ส่งออกจึงต้องถูกส่งผ่านด้วย การอ้างอิงแบบไม่คงที่.
สะพานลำดับขั้นตอน
ขณะที่สตรีมให้เฟรมเวิร์กการทำงาน แต่ คอนเทนเนอร์แบบลำดับ (vector, list) ให้หน่วยความจำ ข้อมูลที่ถูกส่งเข้ามามักจะถูกจัดโครงสร้างเป็นคอนเทนเนอร์เหล่านี้ โดยเลือกใช้ vector เพื่อความเร็ว หรือ list เพื่อการแทรกข้อมูลที่ยืดหยุ่น